home *** CD-ROM | disk | FTP | other *** search
- Short: ASAP - Amiga Software Authoring Platform
- Author: hfx@fox.nstn.ca
- Uploader: hfx@fox.nstn.ca
- Version: 1.0 beta (final beta)
- Type: dev/c
- Requires: Storm or SAS C++. GNUC++ support is being investigated
-
- What: Zero overhead, inlined C++ wrapper classes for the Amiga API.
- A collection of 90 header files, each having one class which derive
- from the corresponding Amiga system structure, adding no data members,
- only inlined methods which call the corresponding global prototype
- substituting the 'this' pointer for the structure pointer.
-
- Why: I'm a C++ programmer, and I think in terms of objects. The Amiga API
- is a "flat" API. It helps me, and I hope many of you, to categorize these
- functions into "classes" or "categories". Many of you may be concerned about
- overhead using these. See below, there is absolutely *no* overhead. There are
- several benefits, including fewer bugs, such as CloseWindow(pNotAWindow); Also,
- if you want to work with a Window, or RastPort, for instance, you needn't worry
- about what include's you need, just:
-
- #include <ASAP/Window.h>
- #include <ASAP/RastPort.h>
-
- How: A tool called ClassBuilder which I wrote for this purpose.
-
- When: Part time work started in late January.
-
- How it works: Firstly, there is no run time overhead when your compiler allows
- inline optimization. In effect, these are a lot of #define's. As far
- as storage is concerned, these classes *are* the Amiga structures.
- You can treat these classes 100% as if they were the Amiga structures,
- because ultimately, they are.
-
- Consider a structure, "Structure". There are some functions
- which operate upon it, for example OpenStructure(Structure *) and
- CloseStructure(Structure *). To simplify this for the beginner and
- those who grow tired of typing, I write the following code:
-
- class AStructure : public Structure
- {
- public:
- void Open() { ::OpenStructure(this); }
- void Close() { ::CloseStructure(this); }
- };
-
- Now the instance is tied to its methods, and there is less typing.
- Also, I have overloaded operator new and delete where desirable.
- Now you can create/destroy a window as follows:
-
- AWindow *pThis_Window = new(&The_NewWindow) AWindow;
- delete pThis_Window;
-
- instead of:
-
- struct Window *pThis_Window = OpenWindow(&The_NewWindow);
- CloseWindow(pThis_Window);
-
- Updates: These have all been compiled, but there might be one or two
- logic errors (perhaps in the more obscure classes).
-
- Second version of the collection with abbreviated names for
- those who do not mind alias of the Amiga API functions.
-
- eg. pThis_Window->Zip(); // instead of pThis_Window->ZipWindow();
-
- Also, default parameters, where the OS defines special parameter
- values or they are otherwise meaningful, must be added.
-
- Future: This collection is fairly comprehensive, but not complete. I'm relying
- on you for feedback. Also, this is just phase I. I've got some nice code
- built on top of this to allow simple, dynamic IDCMP/Boopsi event handling
- (dispatching) which I hope to release some time this summer.
-
- Important:
-
- Please, please email me if you have any problems or suggestions/complaints.
-
- In SAS/C++, create a directory called ASAP in your cxxinclude directory
- Decompress the archive into this directory.
-
- In Storm C, create a directory as above, but put it whereever you want,
- only make certain the directory is in your include path.
-
- The files should be reachable by, for example:
-
- #include <ASAP/Window.h>
-
- Sorry, there is no example in this archive, but I will post one or
- more soon.
-
-
- ============================= Archive contents =============================
-
- Original Packed Ratio Date Time Name
- -------- ------- ----- --------- -------- -------------
- 6229 788 87.3% 08-Sep-06 12:55:12 amigaguidecontext_.h
- 947 284 70.0% 16-Jun-06 07:28:44 amigaguidehost.h
- 1366 305 77.6% 08-Sep-06 12:56:00 amigaguidemsg.h
- 1427 320 77.5% 08-Sep-06 14:00:16 anchorpath.h
- 1964 419 78.6% 08-Sep-06 14:01:20 animob.h
- 3359 542 83.8% 08-Sep-06 14:02:24 appicon.h
- 3119 510 83.6% 08-Sep-06 14:03:32 appmenuitem.h
- 3225 511 84.1% 08-Sep-06 14:00:32 appwindow.h
- 1142 285 75.0% 08-Sep-06 14:01:28 areainfo.h
- 2119 434 79.5% 08-Sep-06 14:02:04 argstring_.h
- 4184 699 83.2% 08-Sep-06 13:58:04 bitmap.h
- 1107 265 76.0% 08-Sep-06 16:08:12 bitscaleargs_.h
- 1306 304 76.7% 08-Sep-06 14:04:08 bob.h
- 1239 324 73.8% 08-Sep-06 16:16:56 bootnode_.h
- 4629 795 82.8% 08-Sep-06 14:05:28 cardhandle.h
- 2833 512 81.9% 08-Sep-06 14:06:16 catalog.h
- 1241 284 77.1% 08-Sep-06 14:07:16 clockdata.h
- 5228 869 83.3% 08-Sep-06 14:07:56 colormap.h
- 2382 455 80.8% 08-Sep-06 14:09:24 configdev_.h
- 1665 336 79.8% 08-Sep-06 14:12:16 contextnode.h
- 1808 396 78.0% 08-Sep-06 14:23:28 coplist.h
- 1471 326 77.8% 08-Sep-06 16:34:08 currentbinding_.h
- 2024 412 79.6% 08-Sep-06 15:48:28 cxmsg.h
- 5270 932 82.3% 08-Sep-06 15:38:20 cxobj.h
- 1325 307 76.8% 08-Sep-06 15:53:08 datestamp.h
- 1224 277 77.3% 08-Sep-06 15:55:00 datetime.h
- 1765 384 78.2% 08-Sep-06 15:57:32 dbufinfo.h
- 1227 276 77.5% 08-Sep-06 16:02:40 device.h
- 1441 361 74.9% 08-Sep-06 16:23:48 devicenode_.h
- 1765 380 78.4% 08-Sep-06 16:25:48 devproc.h
- 2746 492 82.0% 08-Sep-06 16:40:16 diskobject.h
- 2931 503 82.8% 08-Sep-06 16:43:32 doslist_.h
- 1741 387 77.7% 08-Sep-06 16:56:56 dospacket.h
- 1381 313 77.3% 08-Sep-06 16:59:56 drawinfo.h
- 7905 1032 86.9% 08-Sep-06 18:08:48 dtobject.h
- 1275 291 77.1% 08-Sep-06 18:11:08 eclockval.h
- 8738 1332 84.7% 08-Sep-06 18:18:36 filehandle.h
- 5165 827 83.9% 08-Sep-06 18:35:20 filelock.h
- 2066 413 80.0% 08-Sep-06 18:41:56 fontcontentsheader.h
- 1300 311 76.0% 08-Sep-06 18:45:20 freelist_.h
- 7364 1000 86.4% 08-Sep-06 19:00:40 gadget.h
- 1635 387 76.3% 09-Sep-06 03:18:28 hook.h
- 3380 574 83.0% 12-Sep-06 00:07:44 IClass.h
- 8641 1194 86.1% 09-Sep-06 22:01:44 iffhandle.h
- 1086 275 74.6% 09-Sep-06 22:03:20 image.h
- 2949 639 78.3% 09-Sep-06 03:19:40 inputevent_.h
- 2308 417 81.9% 09-Sep-06 22:22:40 interrupt.h
- 1548 318 79.4% 09-Sep-06 22:24:40 intuimessage.h
- 1084 260 76.0% 01-Sep-06 17:08:56 intuitext.h
- 3031 555 81.6% 09-Sep-06 03:19:00 iorequest.h
- 1785 400 77.5% 09-Sep-06 03:19:20 iostdreq.h
- 1241 299 75.9% 09-Sep-06 03:20:08 isrvstr.h
- 1277 296 76.8% 09-Sep-06 22:49:40 keymap.h
- 5775 901 84.3% 09-Sep-06 22:58:24 layer.h
- 3496 589 83.1% 09-Sep-06 23:00:16 layer_info.h
- 2494 490 80.3% 09-Sep-06 23:08:28 localcontextitem.h
- 1410 333 76.3% 09-Sep-06 23:12:24 memheader.h
- 2003 435 78.2% 09-Sep-06 23:15:48 memlist_.h
- 3168 590 81.3% 09-Sep-06 23:26:04 menu.h
- 1513 339 77.5% 09-Sep-06 23:27:12 menuitem.h
- 1067 262 75.4% 09-Sep-06 23:30:36 message.h
- 1981 432 78.1% 09-Sep-06 23:34:00 monitorspec.h
- 3791 682 82.0% 09-Sep-06 03:20:24 msgport.h
- 1255 287 77.1% 04-Sep-06 01:10:48 notifyrequest.h
- 2989 563 81.1% 09-Sep-06 23:44:56 nvdata_.h
- 1782 409 77.0% 09-Sep-06 23:49:00 nvinfo_.h
- 7157 1040 85.4% 09-Sep-06 03:21:20 object.h
- 1645 327 80.1% 09-Sep-06 01:08:48 preferences.h
- 2040 426 79.1% 09-Sep-06 01:10:40 process.h
- 16920 2263 86.6% 09-Sep-06 01:21:52 rastport.h
- 1904 416 78.1% 09-Sep-06 01:23:12 rdargs.h
- 1307 299 77.1% 09-Sep-06 01:24:44 recordlock_.h
- 3488 551 84.2% 09-Sep-06 01:26:16 region.h
- 1481 319 78.4% 04-Sep-06 03:04:16 requester.h
- 1384 331 76.0% 09-Sep-06 01:31:24 resident.h
- 2596 521 79.9% 09-Sep-06 01:33:48 rexxmsg.h
- 5517 906 83.5% 09-Sep-06 01:39:56 screen.h
- 3223 516 83.9% 09-Sep-06 01:42:00 signalsemaphore.h
- 1305 323 75.2% 09-Sep-06 01:57:44 simplesprite.h
- 1876 430 77.0% 05-Sep-06 10:46:56 task.h
- 1503 350 76.7% 09-Sep-06 02:02:52 textattr.h
- 3350 619 81.5% 09-Sep-06 02:04:28 textfont.h
- 1141 287 74.8% 09-Sep-06 02:07:48 tmpras.h
- 1452 331 77.2% 09-Sep-06 02:09:16 ucoplist_.h
- 1812 355 80.4% 09-Sep-06 02:12:16 unit_.h
- 1554 352 77.3% 09-Sep-06 02:13:48 view.h
- 4773 848 82.2% 09-Sep-06 02:15:44 viewport.h
- 2481 474 80.8% 09-Sep-06 02:34:00 visualinfo.h
- 1695 365 78.4% 09-Sep-06 02:38:40 vsprite.h
- 15004 2225 85.1% 09-Sep-06 02:48:28 window.h
- -------- ------- ----- --------- --------
- 261940 46993 82.0% 13-Apr-98 12:05:14 90 files
-